<?php

namespace App\Services\TencentIm;


class GroupServices extends BaseConfig
{

    /**
     * Describe:创建群组
     * $name 群名称
     * GroupId 自定义群组id
     *Introduction 群简介，最长240字节，使用 UTF-8 编码，1个汉字占3个字节
     * FaceUrl  群头像 URL，最长100字节
     * Notification 群公告，最长300字节，使用 UTF-8 编码，1个汉字占3个字节
     * Type 群组形态，包括 Public（陌生人社交群），Private（即 Work，好友工作群），ChatRoom（即 Meeting，会议群），AVChatRoom（直播群），Community（社群）
     * User: TANGFEN
     * DateTime: 2022/2/28 16:45
     */
    public function createGroup($type, $name, $GroupId, $Introduction = '', $FaceUrl = '', $Notification = '')
    {
        $url = $this->url . 'group_open_http_svc/create_group';
        $data = [
            'Type' => $type,
            'Name' => $name,
            'Introduction' => $Introduction,
            'FaceUrl' => $FaceUrl,
            'Notification' => $Notification,
            'GroupId' => $GroupId,
        ];
        return $this->common($url, $data);
    }


    /**
     * Describe:修改群基础资料
     * $name 群名称
     * GroupId 自定义群组id
     * Introduction 群简介，最长240字节，使用 UTF-8 编码，1个汉字占3个字节
     * FaceUrl  群头像 URL，最长100字节
     * Notification 群公告，最长300字节，使用 UTF-8 编码，1个汉字占3个字节
     * User: TANGFEN
     * DateTime: 2022/2/28 16:45
     */
    public function updateGroup($GroupId, $name, $Introduction = '', $FaceUrl = '', $Notification = '')
    {
        $url = $this->url . 'group_open_http_svc/modify_group_base_info';
        $data = [
            'Name' => $name,
            'Introduction' => $Introduction,
            'FaceUrl' => $FaceUrl,
            'Notification' => $Notification,
            'GroupId' => $GroupId,
        ];
        return $this->common($url, $data);
    }

    /**
     * 增加群成员
     * @param $GroupId
     * @param $name
     * @param string $Member_Account 用户id
     * @return mixed
     */
    public function addGroupMember($GroupId, $Member_Account)
    {
        $url = $this->url . 'group_open_http_svc/add_group_member';
        $data = [
            'MemberList' => [
                [
                    'Member_Account' => $Member_Account
                ]
            ],
            'Silence' => 1,
            'GroupId' => $GroupId,
        ];
        return $this->common($url, $data);
    }

    /**
     * 删除群成员
     * @param $GroupId
     * @param $Member_Account
     * @return mixed
     */
    public function delGroupMember($GroupId, $Member_Account)
    {
        $url = $this->url . 'group_open_http_svc/delete_group_member';
        $data = [
            'MemberToDel_Account' => [$Member_Account],
            'GroupId' => $GroupId,
        ];
        return $this->common($url, $data);
    }

    /**
     * 解散群
     * @param $GroupId
     * @param $Member_Account
     * @return mixed
     */
    public function destroyGroupMember($GroupId)
    {
        $url = $this->url . 'group_open_http_svc/destroy_group';
        $data = [
            'GroupId' => $GroupId,
        ];
        return $this->common($url, $data);
    }

    /**
     * 单个/批量禁言
     * @param $GroupId 群组id
     * @param $Member_Account 用户id 为4294967295时永久禁言  为0时表示取消禁言
     * @return mixed
     */
    public function forbidSendMsg($GroupId,$Member_Account)
    {
        $url = $this->url . 'group_open_http_svc/forbid_send_msg';
        $data = [
            'GroupId' => $GroupId,
            'Members_Account' => [$Member_Account],
            'ShutUpTime' => '4294967295',//为4294967295时永久禁言  为0时表示取消禁言
        ];
        return $this->common($url, $data);
    }



}